package com.office.schedule.reminder.domain;


import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.office.common.core.domain.BaseEntity;
import com.office.common.annotation.Excel;

/**
 * 日程提醒对象 reminder
 *
 * @author 柒月
 * @date 2025-05-20
 */
public class ReminderEntity extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 提醒唯一标识ID
     */
    private Long id;

    /**
     * 关联日程ID
     */
    private Long scheduleId;

    @Excel(name = "日程标题")
    private String title;

    @Excel(name = "触发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    @Excel(name = "日程类型")
    private Integer datesType;

    /**
     * 类型
     */
    @Excel(name = "类型")
    private Long remindType;

    /**
     * 触发时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "触发时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date remindTime;

    /**
     * 提醒内容
     */
    @Excel(name = "提醒内容")
    private String message;

    /**
     * 是否已发送 (0=未发送, 1=已发送)
     */
    private Long isSent;

    /**
     * 实际发送时间（可为空）
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date sentAt;

    /** 提醒开始时间*/
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date beginRemindTime;

    /** 提醒开始结束*/
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endRemindTime;

    /** 日程开始时间*/
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date beginScheduleTime;

    /** 日程结束时间*/
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endScheduleTime;

    /** 提醒表id*/
    private Long remindId;

    public Long getRemindId() {
        return remindId;
    }

    public void setRemindId(Long remindId) {
        this.remindId = remindId;
    }


    public Date getBeginRemindTime() {
        return beginRemindTime;
    }

    public void setBeginRemindTime(Date beginRemindTime) {
        this.beginRemindTime = beginRemindTime;
    }

    public Date getBeginScheduleTime() {
        return beginScheduleTime;
    }

    public void setBeginScheduleTime(Date beginScheduleTime) {
        this.beginScheduleTime = beginScheduleTime;
    }

    public Date getEndRemindTime() {
        return endRemindTime;
    }

    public void setEndRemindTime(Date endRemindTime) {
        this.endRemindTime = endRemindTime;
    }

    public Date getEndScheduleTime() {
        return endScheduleTime;
    }

    public void setEndScheduleTime(Date endScheduleTime) {
        this.endScheduleTime = endScheduleTime;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public void setScheduleId(Long scheduleId) {
        this.scheduleId = scheduleId;
    }

    public Long getScheduleId() {
        return scheduleId;
    }

    public void setRemindType(Long remindType) {
        this.remindType = remindType;
    }

    public Long getRemindType() {
        return remindType;
    }

    public void setRemindTime(Date remindTime) {
        this.remindTime = remindTime;
    }

    public Date getRemindTime() {
        return remindTime;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public String getMessage() {
        return message;
    }

    public void setIsSent(Long isSent) {
        this.isSent = isSent;
    }

    public Long getIsSent() {
        return isSent;
    }

    public void setSentAt(Date sentAt) {
        this.sentAt = sentAt;
    }

    public Date getSentAt() {
        return sentAt;
    }


    public Integer getDatesType() {
        return datesType;
    }

    public void setDatesType(Integer datesType) {
        this.datesType = datesType;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }


}
